Many computers utilize firmware, such as a basic input/output system (“BIOS”) or universal extensible firmware interface (“UEFI”), when booting up the computer system, for initializing various services, such as recognizing devices (e.g., input/output (“I/O”) devices) associated with the computer, initializing memory, initializing storage devices, etc. The firmware, in addition to enabling boot-up services, might also enable runtime services, such as enabling interaction between an operating system (“O/S”) operating on the computer and the hardware of the computer. Such a firmware and its components (e.g., firmware components) are typically stored on a non-volatile memory device (e.g., NAND Flash, NOR Flash, EEPROM, etc.) of the computer.
There may be various variables associated with the firmware that may specify corresponding configuration information and/or functionality of the computer. Some of these variable values may be written and/or read to/from the non-volatile memory device during boot up of the computer. Others of these variables may be written and/or read during boot up and runtime.
In some cases, firmware variables may be incorrectly designated at build time, such as by a computer manufacturer, as having read and write (e.g., get and set functions) permissions during runtime of a computer system. This may result in improper access to firmware variables when the computer system is operating under the control of the O/S.
It is with respect to these considerations and others that the disclosure made herein is provided.